package com._5704.website.util;

import com._5704.website.exception.WebsiteExceptionEnum;
import com._5704.website.vo.JsonVO;
import org.springframework.stereotype.Component;

/**
 * 对返回值进行操作
 */
@Component
public class JsonUtil {
    /**
     * 返回成功带数据
     * @param data 数据
     * @return  自定义返回实体
     */
    public static JsonVO<Object> success(Object data){
        JsonVO<Object> jsonVo = new JsonVO<>();
        jsonVo.setCode(WebsiteExceptionEnum.SUCCESS.getCode());
        jsonVo.setMsg(WebsiteExceptionEnum.SUCCESS.getMsg());
        jsonVo.setData(data);
        return  jsonVo;
    }

    /**
     * 返回成功不带数据
     * @return
     */
    public static JsonVO<String> success(){
        JsonVO<String> jsonVo = new JsonVO<>();
        jsonVo.setCode(WebsiteExceptionEnum.SUCCESS.getCode());
        jsonVo.setMsg(WebsiteExceptionEnum.SUCCESS.getMsg());
        jsonVo.setData(null);
        return  jsonVo;
    }

    /**
     * 返回失败带说明
     * @param websiteExceptionEnum 异常
     * @param s 补充说明
     * @return
     */
    public static JsonVO<String> error(WebsiteExceptionEnum websiteExceptionEnum, String s) {
        JsonVO<String> jsonVo = new JsonVO<>();
        jsonVo.setCode(websiteExceptionEnum.getCode());
        jsonVo.setMsg(websiteExceptionEnum.getMsg());
        jsonVo.setData(s);
        return jsonVo;
    }

    /**
     * 返回失败不带说明
     * @param websiteExceptionEnum 异常
     * @return
     */
    public static JsonVO<String> error(WebsiteExceptionEnum websiteExceptionEnum) {
        JsonVO<String> jsonVo = new JsonVO<>();
        jsonVo.setCode(websiteExceptionEnum.getCode());
        jsonVo.setMsg(websiteExceptionEnum.getMsg());
        jsonVo.setData(null);
        return jsonVo;
    }
}
